/********************************************************************************
 * Copyright(c) 2020-2025 BST All rights reserved.
 * - Filename
 * - Author
 * - Version V1.0.0
 * - Date    2025/05/14
 * - Brief
 * - FunctionList:
 ******************************************************************************
 * History:
 *
 *
 *
 ******************************************************************************
 */

#pragma once

#include <atomic>
#include <cstdint>
#include <cstdio>
#include <deque>
#include <mutex>
class ConfigSingleton {
 public:
  static ConfigSingleton &get();
  void loadConfig(const std::string &cfg);
  std::string getSubscribleIp();
  std::string getImagePath();
  int getSendPeriod();
  int getReplayType();

 private:
  int _type;
  int _period;
  std::string _imagePath;
  std::string _subIp;

  ConfigSingleton();
  ~ConfigSingleton();
  ConfigSingleton(const ConfigSingleton &) = delete;
  ConfigSingleton &operator=(const ConfigSingleton &) = delete;
};
